var express = require("express");
var router = express.Router();

// 引入mysql
const mysql = require("mysql");
//3. 创建连接（登录数据库）
const connObj = mysql.createConnection({
  host: "localhost", //127.0.0.1
  user: "root",
  password: "root",
  port: 3306,
  database: "web",
});

// 引入ejs
// const { render } = require("ejs");

// 渲染登录表单页面路由
router.get("/login", function (req, res) {
  res.render("login");
});
// 渲染注册表单页面路由
router.get("/register", function (req, res) {
  res.render("register");
});

// 实现登录功能
router.post("/login", (req, res) => {
  let { tel, pass } = req.body; //接收用户传递过来的参数
  let sql = `SELECT * FROM users  WHERE username='${tel}' AND password='${pass}'`;
  connObj.query(sql, (err, result) => {
    if (result.length > 0) {
      res.send("登录成功");
      return;
    } else {
      res.send("用户名或密码错误");
    }
  });
});

// ---------------------------------------------------------
//实现注册功能
router.post("/register", (req, res) => {
  //1. 接收参数
  let { username = "", password = "", repwd = "" } = req.body; // 对象的解构赋值
  //去除左右空格
  let reg = /^\s+|\s+$/g;
  username = username.replace(reg, "");

  //2. 必须做一些数据验证
  //2.1 是否为空
  if (username == "" || !password || !repwd) {
    res.send("请传递必要参数");
    return; //都已经send响应结果了，没必要再往下执行
  }
  //2. 格式判断： 长度
  //用户名不到小于5位 不能大于 15位
  if (username.length < 5 || username.length > 15) {
    res.send("用户名不到小于5位 不能大于 15位");
    return;
  }
  //两次密码不一致
  if (password != repwd) {
    res.send("两次密码不一致");
    return;
  }

  //  查找数据库中是否有相同的用户名
  let sql = `SELECT * FROM users WHERE username = '${username}'`;
  connObj.query(sql, (err, result) => {
    if (result.length > 0) {
      res.send("用户名太香了");
      return;
    }
    let times = Date.now();
    let sql2 = `INSERT INTO users ( username,password,regtime ) VALUES ( '${username}','${password}', ${times})`
    connObj.query(sql2, (err, result) => {
      res.send("注册成功");
    });
  });
});

module.exports = router;
